package response

var (
	// ParamError 参数错误
	ParamError = NewCode(-1, "参数错误")
)

// ResponseCode 响应代码
type ResponseCode interface {
	Error() string
	Code() int
}

type defaultCode struct {
	errCode int
	msg     string
}

func (b defaultCode) Error() string {
	return b.msg
}

func (b defaultCode) Code() int {
	return b.errCode
}

// NewCode 新增一个响应代码
func NewCode(code int, msg string) ResponseCode {
	return &defaultCode{
		errCode: code,
		msg:     msg,
	}
}

// NewCodeWithError 根据error创建ResponseCode
func NewCodeWithError(code int, err error) ResponseCode {
	return NewCode(code, err.Error())
}
